import { _decorator } from 'cc';
import { BaseCharacter } from '../BaseCharacter';
import { BaseBullet } from './BaseBullet';
const { ccclass, property } = _decorator;

@ccclass('BounceBullet')
export class BounceBullet extends BaseBullet {
    /****************************************************************************************************************
     *Readonly 常量
     ****************************************************************************************************************/
    /****************************************************************************************************************
     *Property 定义变量
     ****************************************************************************************************************/
    /**
     * 剩余弹射次数
     */
    private _number: number = 5;
    /***************************************************************
    *PropertyUI 引用的控件
    ***************************************************************/
    /****************************************************************************************************************
     * Lifecycle 生命周期相关方法
     ****************************************************************************************************************/
    /****************************************************************************************************************
     * Public 公有方法
     ****************************************************************************************************************/
    /****************************************************************************************************************
     * private 私有方法
     ****************************************************************************************************************/
    protected override onHit(character: BaseCharacter): void {
        this.damage(character);
        this.number -= 1;
    }
    protected override onBorder(): void {
        this.number -= 1;
    }
    /****************************************************************************************************************
     * Property Get && Set 属性的 get && set 函数
     ****************************************************************************************************************/
    public get number(): number {
        return this._number;
    }
    public set number(value: number) {
        this._number = value;
        if (value <= 0) {
            this.recycle();
        }
    }
}


